package cn.wolfcode.trip.base.mapper;

import cn.wolfcode.trip.base.domain.UserInformation;
import cn.wolfcode.trip.base.query.InformationQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户与消息关系的接口
 * @author lishuanwang
 */
public interface UserInformationMapper {
    /**
     * 插入user和message的关系
     * @param record:关系记录
     * @return :
     */
    int insert(UserInformation record);

    /**
     * 通过用户的id查询所有的信息(已读未读的都有)
     * @param userId:用户id
     * @return :消息用户关系记录
     */
    List<UserInformation> selectAllByUserId(Long userId);

    int getUnReadInfoNums(@Param("userId") Long userId, @Param("type") Integer type);

    /**
     * 更新用户所对应的消息标记为已经读过
     * @param userId :用户id
     * @param inforId : 信息id
     */
    void updateRead(@Param("userId") Long userId, @Param("inforId") Long inforId);

    /**
     * 获取用户信息的情况.
     * 主要是对比阅读是否需要更新
     * @param userId:用户id
     * @param inforId:用户id
     * @return userinformation
     */
    UserInformation getUserInfo(@Param("userId") Long userId, @Param("inforId") Long inforId);

    void updateReadInfos(InformationQuery qo);
}